package cn.wolfcode.wolf2world.redis.service;

import cn.wolfcode.wolf2world.domain.UserInfo;
import cn.wolfcode.wolf2world.domain.UserStrategyFavoer;

import java.util.List;
import java.util.Map;

/**
 * redis用户服务
 * @author 杨兴健
 * @Date 2020/8/7 21:10
 */
public interface UserRedisService {

    /**
     * 发送短信验证码
     * @param phone 手机号码
     */
    void sendVerifyCode(String phone);

    /**
     * 校验密码是否正确
     *
     * @param phone      手机号码
     * @param verifyCode 用户发过来的验证码
     */
    void checkCode(String phone, String verifyCode);

    /**
     * 保存当前用户到redis中
     *
     * @param user 当前用户对象
     * @return token
     */
    String saveUser(UserInfo user);

    /**
     * 根据token，获取当前登录用户
     *
     * @param token
     * @return
     */
    UserInfo getCurrentUser(String token);


    /**
     * 是否存在用户攻略收藏key
     *
     * @param id
     * @return
     */
    Boolean hasKey(String id);

    /**
     * 设置用户收藏攻略
     *
     * @param userStrategyFavoer
     */
    void setUserStrategyFavor(UserStrategyFavoer userStrategyFavoer);

    /**
     * 点击收藏
     *
     * @param uid
     * @param sid
     * @return
     */
    boolean clickFavor(String uid, String sid);

    /**
     * 获取用户的收藏对象
     *
     * @param uid
     * @return
     */
    UserStrategyFavoer getUserStrategyFavor(String uid);

    /**
     * 获取所有用户收藏攻略
     *
     * @return
     */
    List<UserStrategyFavoer> getUserStrategyFaverList();

    /**
     * 统计访问数
     *
     * @param id
     * @param did
     * @return
     */
    Map statcview(String id, String did);
}